﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Una.FirmaDigital.UI.Firma.Formularios
{
    public partial class FirmaBasica : Form
    {
        string ArchivoOrigen { get; set; }
        string ArchivoCrt { get; set; }
        string ArchivoDestino { get; set; }
        bool Validos { get; set; }
        string Contra { get;set;}
        string Motivo { get; set; }
        bool AbrirArchivo { get; set; }
        public FirmaBasica()
        {
            InitializeComponent();
        }

        private void btnsrc_Click(object sender, EventArgs e)
        {
            string tempPath = "";
            fileopen_SeleccionarArchivos.Filter = "Pdf files (*.Pdf)|*.Pdf"; //this should be before
            if (fileopen_SeleccionarArchivos.ShowDialog() == DialogResult.OK)
            {
                tempPath = fileopen_SeleccionarArchivos.FileName; // prints path
                ArchivoOrigen = tempPath;
                txtsrc.Text = tempPath;
            }

        }

        private void btncrt_Click(object sender, EventArgs e)
        {
            string tempPath = "";
            fileopen_SeleccionarArchivos.Filter = "Pfx files (*.pfx)|*.Pfx"; //this should be before
            if (fileopen_SeleccionarArchivos.ShowDialog() == DialogResult.OK)
            {
                tempPath = fileopen_SeleccionarArchivos.FileName; // prints path
                txtcrt.Text = tempPath;
                ArchivoCrt = tempPath;
            }
        }

        private void btndes_Click(object sender, EventArgs e)
        {
            string tempPath = "";
            fileopen_SeleccionarArchivos.Filter = "Pdf files (*.Pdf)|*.Pdf"; //this should be before
            if (folder_seleccionarcarpeta.ShowDialog() == DialogResult.OK)
            {
                tempPath = folder_seleccionarcarpeta.SelectedPath; // prints path
                txtdes.Text = tempPath;
                ArchivoDestino = tempPath;
            }

        }

        private void button4_Click(object sender, EventArgs e)
        {
            ArchivoCrt = ArchivoDestino = ArchivoOrigen = txtdes.Text = txtsrc.Text = txtcrt.Text = "";
        }

        private void btnverificar_Click(object sender, EventArgs e)
        {
            Validos = camposCorrectos();
        }

        private bool camposCorrectos()
        {
            if (ArchivoCrt == null || ArchivoDestino == null || ArchivoOrigen == null)
            {
                MessageBox.Show("Los campos no pueden estar nulos");
                return false;
            }
            else if (!File.Exists(ArchivoCrt))
            {
                MessageBox.Show("No se encuentra el archivo llave");
                return false;
            }
            else if (!File.Exists(ArchivoOrigen))
            {
                MessageBox.Show("No se encuentra el archivo origen");
                return false;
            }
            else if (!Directory.Exists(ArchivoDestino))
            {
                MessageBox.Show("No es válido la ruta destino");
                return false;
            }

            MessageBox.Show("Rutas comprobadas, correcto");
            return true;
        }

        private void btnfirmar_Click(object sender, EventArgs e)
        {
            Contra=txtcontrasena.Text;
            Motivo = txtmotivo.Text;
            Validos = camposCorrectos();
            AbrirArchivo = checkabrir.Checked;
            if (Validos)
            {
                string mensaje = "";
                LN.Dominio.Especificaciones.Firma lnfirma = new LN.Dominio.Especificaciones.Firma();
                if (lnfirma.FirmaDesacopladaBasica(ArchivoOrigen, Contra,Motivo, ArchivoCrt, ArchivoDestino,AbrirArchivo, ref mensaje))
                {
                    MessageBox.Show("Revisa el documento a ver si funciona");
                    Close();
                }
                else
                {
                    MessageBox.Show(mensaje);
                }
               
            }

        }
    }
}
